/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controlador;

import connection.Connection;
import dao.EvaluadorJpaController;
import dao.ExperienciaacademicaJpaController;
import dao.exceptions.PreexistingEntityException;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.html.HtmlDataTable;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManagerFactory;
import modelo.Evaluador;
import modelo.Experienciaacademica;
import modelo.ExperienciaacademicaPK;

@ManagedBean(name = "ControladorExpAcademica")
@SessionScoped
public class ControladorExperienciaAcademica {

    private List<Experienciaacademica> listaexperienciaacademica;
    private HtmlDataTable tabla;
    public EntityManagerFactory factory;
    private Evaluador evaluador;
    private Experienciaacademica expAcademica;
    private ExperienciaacademicaPK pk;
       private Date txtFechaFin;
    private String txtCodigoTitulo;
    private String txtInstitucionEducativa;
    private String txtTtituloObtenido;
 
private ExperienciaacademicaJpaController daoExpAcademica;
    public ControladorExperienciaAcademica() {
    }

    public List<Experienciaacademica> getListaexperienciaacademica() {
        return listaexperienciaacademica;
    }

    public void setListaexperienciaacademica(List<Experienciaacademica> listaexperienciaacademica) {
        this.listaexperienciaacademica = listaexperienciaacademica;
    }

    public Date getTxtFechaFin() {
        return txtFechaFin;
    }

    public void setTxtFechaFin(Date txtFechaFin) {
        this.txtFechaFin = txtFechaFin;
    }

    public String getTxtCodigoTitulo() {
        return txtCodigoTitulo;
    }

    public void setTxtCodigoTitulo(String txtCodigoTitulo) {
        this.txtCodigoTitulo = txtCodigoTitulo;
    }

    public String getTxtInstitucionEducativa() {
        return txtInstitucionEducativa;
    }

    public void setTxtInstitucionEducativa(String txtInstitucionEducativa) {
        this.txtInstitucionEducativa = txtInstitucionEducativa;
    }

    public String getTxtTtituloObtenido() {
        return txtTtituloObtenido;
    }
    public HtmlDataTable getTabla() {
        return tabla;
    }

    public void setTabla(HtmlDataTable tabla) {
        this.tabla = tabla;
    }

    public void setTxtTtituloObtenido(String txtTtituloObtenido) {
        this.txtTtituloObtenido = txtTtituloObtenido;
    }

    public Evaluador getEvaluador() {
        return evaluador;
    }

    public void setEvaluador(Evaluador evaluador) {
        this.evaluador = evaluador;
    }

   

    public void cargarExperienciaAcademica() {

        factory = Connection.getEmf();
        ExperienciaacademicaJpaController daoExperienciaAcademica = new ExperienciaacademicaJpaController(factory);
        EvaluadorJpaController daoEvaluador = new EvaluadorJpaController(factory);
        Evaluador e = (Evaluador) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("ControladorEvaluador");
        String Aux = e.getCedula();
        setEvaluador(daoEvaluador.findEvaluador(Aux));
        List<Experienciaacademica> levaluador = daoExperienciaAcademica.findExperienciaacademicaEntities();
        List<Experienciaacademica> Final = null;
        for (int i = 0; i < levaluador.size(); i++) {

            if (levaluador.get(i).getEvaluador().getCedula().equals(Aux)) {

                Final.add(levaluador.get(i));
            }
        }
        setListaexperienciaacademica(Final);

    }

    public Experienciaacademica getExpAcademica() {
        return expAcademica;
    }

    public void setExpAcademica(Experienciaacademica expAcademica) {
        this.expAcademica = expAcademica;
    }

    public ExperienciaacademicaPK getPk() {
        return pk;
    }

    public void setPk(ExperienciaacademicaPK pk) {
        this.pk = pk;
    }

    public void crearExperienciaAcademica() {
        factory = Connection.getEmf();
        ExperienciaacademicaJpaController daoExperienciaacad = new ExperienciaacademicaJpaController(factory);
        Experienciaacademica nueva = null;
        ExperienciaacademicaPK PK = null;
              PK.setCedulaevaluador(getEvaluador().getCedula());
       PK.setCodigotitulo(txtCodigoTitulo);
        
       nueva.setExperienciaacademicaPK(PK);
        nueva.setEvaluador(getEvaluador());
      
        nueva.setFechafin(txtFechaFin);
        nueva.setInstitucioneducativa(txtInstitucionEducativa);
     
 
        try {
            daoExperienciaacad.create(nueva);
        } catch (PreexistingEntityException ex) {
            Logger.getLogger(ControladorExperienciaAcademica.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(ControladorExperienciaAcademica.class.getName()).log(Level.SEVERE, null, ex);
        }


    }

 public void cargarTablaEcperienciaAcademica() {
        factory = Connection.getEmf();
        daoExpAcademica = new ExperienciaacademicaJpaController(factory);
        setListaexperienciaacademica(daoExpAcademica.findExperienciaacademicaEntities());
           }
    public void editarExperienciaAcademica() {

        ExperienciaacademicaPK r = getPk();
        Experienciaacademica reemplazo = getExpAcademica();
        ExperienciaacademicaJpaController daoExperiencia = new ExperienciaacademicaJpaController(factory);
        Experienciaacademica cambio = daoExperiencia.findExperienciaacademica(r);
        cambio.setTituloobtenido(reemplazo.getTituloobtenido());
        cambio.setInstitucioneducativa(reemplazo.getInstitucioneducativa());
              cambio.setFechafin(reemplazo.getFechafin());
        
    }
}
